Date: Wed, 20 Nov 1996 22:28:37 GMT
Server: Apache/1.0.3
Content-type: text/html
Content-length: 4430
Last-modified: Wed, 20 Nov 1996 18:44:05 GMT

<html>
<head>
<title>P523 Home Page</title>
</head>
<body>
<h2>P523-Programming Language Implementation</h2>
<h3>Fall 1996</h3>
<h3><!WA0><a href="http://www.cs.indiana.edu/hyplan/dyb.html">Kent Dybvig</a>
and
<!WA1><a href="http://www.cs.indiana.edu/hyplan/johnz.html">John Zuckerman</a></h3>

<h3>Contents:</h3>
<ul>
<li><!WA2><a href="#elec">Electronic Communication</a>
<li><!WA3><a href="#office">Office Hours</a>
<li><!WA4><a href="#readings">Readings</a>
<li><!WA5><a href="#goals">Course Goals</a>
<li><!WA6><a href="#topics">Course Topics</a>
<li><!WA7><a href="#projects">Projects</a>
<li><!WA8><a href="#pinfo">Project Information</a>
<li><!WA9><a href="#quizzes">Quizzes</a>
<li><!WA10><a href="#pcode">Online Project Code</a>
<li><!WA11><a href="#ceval">Course Evaluation</a>
</ul>

<h3><a name="elec">Electronic Communication</a>:</h3>
<ul>
<li>Class newsgroup: <!WA12><a href="news:ac.csci.p523">ac.csci.p523</a>
<li>Class homepage: <!WA13><a href="http://www.cs.indiana.edu/classes/p523">http://www.cs.indiana.edu/classes/p523</a>
<li>Dybvig: <!WA14><a href="mailto:dyb@cs.indiana.edu"><i>dyb@cs.indiana.edu</i></a>
<li>Zuckerman: <!WA15><a href="mailto:johnz@cs.indiana.edu"><i>johnz@cs.indiana.edu</i></a>
</ul>

<h3><a name="office">Office Hours</a>:</h3>
<ul>
<li>Dybvig: 10-11am T LH401c, or by appointment
<li>Zuckerman: by appointment
</ul>

<h3><a name="readings">Readings</a>:</h3>
<ul>
<li><i><!WA16><a href="http://www.cs.indiana.edu/classes/p523/alpha.ps.gz">Alpha AXP Overview</a></i> by Oscar Waddell
<li><i>Alpha AXP Assembly Language Programmer's
Guide</i>, available online via <!WA17><a href="http://www.cs.indiana.edu/classes/p523/dxbook.html">dxbook</a>
<li><i><!WA18><a href="http://www.cs.indiana.edu/classes/p523/cssm2.5.ps.gz">Chez Scheme System Manual</a></i>
<li>"<!WA19><a href="http://www.cs.indiana.edu/classes/p523/r4rs/r4rs_toc.html">Revised^4 Report on Scheme</a>", also
available in <!WA20><a href="http://www.cs.indiana.edu/classes/p523/r4rs.ps.gz">postscript</a>.
<li><!WA21><a href="http://www.cs.indiana.edu/hyplan/dyb/tspl2ed.html"><i>The
Scheme Programming Language, second edition</i></a> (optional)
<li><i><!WA22><a href="http://www.cs.indiana.edu/hyplan/dyb/ddcg.ps.gz">Destination-Driven Code
  Generation</a></i>, IU Technical Report #302
<li>Additional reading material to be announced
</ul>

<h3><a name="goals">Course Goals:</a></h3>
<ul>
<li>Understand the basic structure of a compiler
<li>Develop capability to design and implement the various pieces
<li>Understand more fully how high-level languages are implemented
</ul>

<h3><a name="topics">Course Topics:</a></h3>
<ul>
<li>Overview: compilation/translation
<li>Lexical analysis
<li>Syntactic analysis (parsing)
<li>Run-time storage management (stack/heap)
<li>Parameter passing mechanisms
<li>Code generation
</ul>

<h3><a name="projects">Projects:</a></h3>
<ul>
<li><!WA23><a href="http://www.cs.indiana.edu/classes/p523/p1/proj1.html">Lexical analysis and parsing of Scheme objects</a>
(due 5pm Fri Sep 20)
<li><!WA24><a href="http://www.cs.indiana.edu/classes/p523/p2/proj2.html">Parsing of an alternative algebraic syntax</a>
(due 5pm Fri Oct 4)
<li><!WA25><a href="http://www.cs.indiana.edu/classes/p523/p3/proj3.html">Code Simplification I</a>
(due 5pm Fri Oct 18)
<li><!WA26><a href="http://www.cs.indiana.edu/classes/p523/p4/proj4.html">Code Simplification II</a>
(due 5pm Fri Nov 1)
<li><!WA27><a href="http://www.cs.indiana.edu/classes/p523/p5/proj5.html">Code Generation</a>
(due 11:59pm Sun Dec 8)
</ul>

<h3><a name="pinfo">Project Information:</a></h3>
<ul>
<li>All projects are coded in <!WA28><a href="http://www.cs.indiana.edu/classes/p523/indentation.html">properly
indented</a> Scheme.
<li>Code generator generates assembly code for the
<!WA29><a href="http://www.cs.indiana.edu/classes/p523/alpha.ps.gz">Alpha AXP</a> processor.
<li>Projects should be run on zinc or copper
(<!WA30><a href="http://account.ucs.indiana.edu">click here</a> to request an account).
<li>Written project reports are required as well as
<!WA31><a href="http://www.cs.indiana.edu/classes/p523/handin.html">electronic submission</a> of code.
<li>Projects are graded on style, presentation, and efficiency
as well as function.
<li>Projects require a significant amount of time and effort, so start early.
<li>Care and neatness pay off.
<li>Each project counts equally towards final grade.
<li>Some project due dates have a one-week grace period during which projects
may be handed in without penalty.
Please make an effort to hand in your projects by the official due dates,
and use the grace periods only for emergencies.
You will fall behind if you consistently miss the due date, as the class
will have moved on to the next topic by the time the official due date has
passed.
</ul>

<h3><a name="quizzes">Quizzes:</a></h3>
<ul>
<li>May be given any time w/o notice
<li>Do not count towards final grade!
</ul>


<h3><a name="Misc">Misc:</a></h3>
<ul>
<li> See the individual project web pages for information on testing
your projects.
</ul>

<h3><a name="ceval">Course Evaluation</a>: TBA</h3>
<p>

<address>dyb@cs.indiana.edu</address>
</body>
</html>
